//package com.leyu.mall.common.dao;
//
//import java.util.List;
//import java.util.Map;
//import org.apache.commons.beanutils.PropertyUtils;
//import org.mybatis.spring.support.SqlSessionDaoSupport;
//import org.springframework.util.ReflectionUtils;
///**
// * <p>标题： </p>
// * <p>功能： </p>
// * <p>版权： Copyright (c) 2012</p>
// * <p>公司: 北京有为科技有限公司</p>
// * <p>创建日期：2012-10-1 下午12:50:49</p>
// * <p>类全名：com.leyu.mall.common.MyBatisDao</p>
// * 作者：
// * 初审：
// * 复审：
// * @version 1.0
// */
///**
// * Mybatis分页查询工具类,为分页查询增加传递:
// * startRow,endRow : 用于oracle分页使用,从1开始
// * offset,limit : 用于mysql 分页使用,从0开始
// * 
// * @author Chris
// *
// */
//public class MyBatisDao extends SqlSessionDaoSupport
//{
//	// public List executeQueryForList(String selStmName, String cntStmName, PageBean query) throws Exception
//	// {
//	// List result = null;
//	// if (StringUtil.isEmpty(selStmName) || StringUtil.isEmpty(cntStmName) || (query == null))
//	// {
//	// return null;
//	// }
//	// try
//	// {
//	// // 得到数据记录总数
//	// Integer countNumber = 100;// (Integer) getSqlSession().(cntStmName, query);
//	// if (countNumber != null)
//	// {
//	// // 设置当前查询的记录
//	// // query.setTotalPage(countNumber.intValue());
//	// query.setTotalItem(countNumber.intValue());
//	// // 验证当前页数的合法�1�7�1�7
//	// query.validatePageInfo();
//	// // 得到当前页的数据
//	// result = getSqlSession().selectList(selStmName, query);
//	// }
//	// } catch (DataAccessException e)
//	// {
//	// throw new Exception(e);
//	// }
//	// return result;
//	// }
//	//
//	// public void save(String key, Object object)
//	// {
//	// getSqlSession().insert(key, object);
//	// }
//	//
//	// public void delete(String key, Serializable id)
//	// {
//	// getSqlSession().delete(key, id);
//	// }
//	//
//	// public void delete(String key, Object object)
//	// {
//	// getSqlSession().delete(key, object);
//	// }
//	//
//	// public <T> T get(String key, Object params)
//	// {
//	// return (T) getSqlSession().selectOne(key, params);
//	// }
//	//
//	// public <T> List<T> getList(String key)
//	// {
//	// return getSqlSession().selectList(key);
//	// }
//	//
//	// public <T> List<T> getList(String key, Object params)
//	// {
//	// return getSqlSession().selectList(key, params);
//	// }
//	
//	public <T> Page<T> selectPage(Page<T> page, String statementName, Object parameter)
//	{
//		String countStatementName = statementName + ".count";
//		return selectPage(page, statementName, countStatementName, parameter);
//	}
//
//	public <T> Page<T> selectPage(Page<T> page, String statementName, String countStatementName, Object parameter)
//	{
//		Number totalItems = (Number) getSqlSession().selectOne(countStatementName, parameter);
//		if (totalItems != null && totalItems.longValue() > 0)
//		{
//			List list = getSqlSession().selectList(statementName, toParameterMap(parameter, page));
//			page.setResult(list);
//			page.setTotalItems(totalItems.longValue());
//		}
//		return page;
//	}
//
//	protected static Map toParameterMap(Object parameter, Page p)
//	{
//		Map map = toParameterMap(parameter);
//		map.put("startRow", p.getStartRow());
//		map.put("endRow", p.getEndRow());
//		map.put("offset", p.getOffset());
//		map.put("limit", p.getPageSize());
//		return map;
//	}
//
//	protected static Map toParameterMap(Object parameter)
//	{
//		if (parameter instanceof Map)
//		{
//			return (Map) parameter;
//		} else
//		{
//			try
//			{
//				return PropertyUtils.describe(parameter);
//			} catch (Exception e)
//			{
//				ReflectionUtils.handleReflectionException(e);
//				return null;
//			}
//		}
//	}
//}
